A media access control (MAC) address is an identifier assigned to a network interface of a computing device to allow for low level (e.g., layer 2 or data link layer in the Open Systems Interconnection model) communications between devices on a shared network medium. Institute of Electrical and Electronics Engineers (IEEE) networking specifications, such as IEEE 802.3 (Ethernet) and IEEE 802.11 (Wi-Fi), define various aspects of the physical and data link layers, including media access control. Among other uses, MAC addresses are used in header information of network messages to facilitate transmission from a source device to a destination device. For example, layer 2 frames may include a source MAC address and a destination MAC address.
MAC addresses have been typically treated as unique identifiers. MAC addresses commonly use a 48-bit (6-byte) addressing scheme, though 64-bit addresses are also in use. The first 24 bits (3 bytes) of a 48-bit MAC address correspond to an Organizationally Unique Identifier (OUI) and the last 24 bits (3 bytes) are specific to the network interface. The seventh most significant bit in a MAC address identifies the MAC address as a universally administered address or a locally administered address. If this bit is 0, the address is a universally administered address; if this bit is 1, the address is a locally administered address. In the universally administered scheme, the first 3 bytes of a MAC address (OUI) corresponds to the device manufacturer and the last 3 bytes are uniquely assigned to individual network interface cards.
Every network interface card is typically assigned a universally administered MAC address with this address stored in hardware or firmware of the network interface card. As used herein, the phrases “true MAC address” and “hardware MAC address” are used to refer to the original MAC address of a network interface card that has been assigned by the manufacturer. MAC addresses assigned by the manufacturer are intended to be unique, e.g., the manufacturer is not supposed to assign the same MAC address to more than one device. A consequence of using the true MAC address in network communications is that, because this address does not change and is intended to be unique, devices can be uniquely and repeatedly identified by other network device based only on their true MAC address.
Mobile device manufacturers have begun masking MAC addresses of wireless network interfaces at the operating system level for a variety of reasons and using a variety of techniques. For example, prior to association with any wireless access points certain mobile devices can use a random MAC address generated by the mobile device for transmitted probe requests. Probe requests are used for scanning for available wireless access points, and may be considered a one-time use type message for which a random MAC address would be suitable. In this way, the probe requests may not uniquely identify the device and thus the device's identity may be masked, at least in part. It is possible, however, for a random MAC address to be identical to a MAC address used by another device, which may result in network problems. Network problems or problems with certain network or other functionality also can result if a mobile device changes its MAC address during an association session or uses different MAC addresses for different association sessions with the network. MAC addresses that are not true MAC addresses and are generated by a client device may be referred to herein as a “generated” MAC address or a “client generated” MAC address.